/*
 * TDS PEC 4
 * Grupo 3H2M
 *
 * El paquete <code>edu.uoc.tds.pec4.beans</code> contiene la implementación de
 * los Data Transfer Object, que representan los mapeos de objetos contra las tablas
 * de la base de datos.<br />Esto permite que las diferentes capas de la aplicación puedan
 * comunicarse enviando objetos DTO que encapsulen la información.<br />
 *
 * Todos los DTO implementan la interfaz <code>java.io.Serializable</code>
 */
package edu.uoc.tds.pec4.beans;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * La clase <code>SolicitudDTO</code> representa el objeto DTO relativo a
 * la entidad solicitud.<br />
 *
 * @author	Luis Rivas Mariño
 * @version	24/11/2011
 * @see		edu.uoc.tds.pec4.common.GestorIncidenciasInterface
 */
public class SolicitudDTO extends DTO {

    private Integer idSolicitud;
    private Integer tipo;
    private Integer estado;
    private Date fechaSol;
    private Date horaSol;
    private String idCliente;
    private Integer idTEncuentro;
    private Integer asistentes;
    private Double superficie;
    private Integer idCiudad;
    private Date fechaIni;
    private Date fechaFin;
    private Date horaIni;
    private Date horaFin;
    private Boolean diaCompleto;
    private String observaciones;

    // Atributos foráneos
    private String nomCliente;
    private String nomCiudad;
    private String nomProvincia;
    private String nomPais;
    private String nomTEncuentro;

    // Listas
    private List<CFisicaDTO> listCFisicas;
    private List<EquipamientoSolicitudDTO> listEquipamiento;

    /**
     * Constructor de una Solicitud
     */
    public SolicitudDTO() {
        super();
    }

    public Integer getIdSolicitud() {
        return idSolicitud;
    }

    public void setIdSolicitud(Integer idSolicitud) {
        this.idSolicitud = idSolicitud;
    }
    
    public Integer getTipo(){
        return tipo;
    }
    
    public void setTipo(Integer tipo){
        this.tipo = tipo;
    }

    public Double getSuperficie(){
        return superficie;
    }
    
    public void setSuperficie(Double superficie){
        this.superficie=superficie;
    }
    
    public void setDiaCompleto(Boolean diaCompleto){
        this.diaCompleto=diaCompleto;
    }
    
    public boolean getDiaCompleto (){
        return diaCompleto;
    }
    
    public Integer getEstado(){
        return estado;
    }
    
    public void setEstado(Integer estado){
        this.estado = estado;
    }
    
    public Date getFechaSol(){
        return fechaSol;
    }
    
    public void setFechaSol(Date fechaSol){
        this.fechaSol = fechaSol;
    }
    
    public Date getHoraSol(){
        return horaSol;
    }
    
    public void setHoraSol(Date horaSol){
        this.horaSol = horaSol;
    }
    
    public String getIdCliente(){
        return idCliente;
    }
    
    public void setIdCliente(String idCliente){
        this.idCliente = idCliente;
    }
    
    public Integer getIdTEncuentro(){
        return idTEncuentro;
    }
    
    public void setIdTEncuentro(Integer idTEncuentro){
        this.idTEncuentro = idTEncuentro;
    }
    
    public Integer getAsistentes(){
        return asistentes;
    }
    
    public void setAsistentes(Integer asistentes){
        this.asistentes = asistentes;
    }
    
    public Integer getIdCiudad(){
        return idCiudad;
    }
    
    public void setIdCiudad(Integer idCiudad){
        this.idCiudad = idCiudad;
    }
    
    public Date getFechaIni(){
        return fechaIni;
    }
    
    public void setFechaIni(Date fechaIni){
        this.fechaIni = fechaIni;
    }
    
    public Date getFechaFin(){
        return fechaFin;
    }
    
    public void setFechaFin(Date fechaFin){
        this.fechaFin = fechaFin;
    }    
    
    public Date getHoraIni(){
        return horaIni;
    }
    
    public void setHoraIni(Date horaIni){
        this.horaIni = horaIni;
    }
    
    public Date getHoraFin(){
        return horaFin;
    }
    
    public void setHoraFin(Date horaFin){
        this.horaFin = horaFin;
    }    
    
    public String getObservaciones(){
        return observaciones;
    }
    
    public void setObservaciones(String observaciones){
        this.observaciones = observaciones;
    }
    
    public boolean isDiaCompleto() {
        return diaCompleto;
    }

    public void setDiaCompleto(boolean diaCompleto) {
        this.diaCompleto = diaCompleto;
    }

    // Atributos foráneos
    public String getNomCliente() {
        return nomCliente;
    }

    public void setNomCliente(String nomCliente) {
        this.nomCliente = nomCliente;
    }

    public String getNomCiudad() {
        return nomCiudad;
    }

    public void setNomCiudad(String nomCiudad) {
        this.nomCiudad = nomCiudad;
    }

    public String getNomPais() {
        return nomPais;
    }

    public void setNomPais(String nomPais) {
        this.nomPais = nomPais;
    }

    public String getNomProvincia() {
        return nomProvincia;
    }

    public void setNomProvincia(String nomProvincia) {
        this.nomProvincia = nomProvincia;
    }

    public String getNomTEncuentro() {
        return nomTEncuentro;
    }

    public void setNomTEncuentro(String nomTEncuentro) {
        this.nomTEncuentro = nomTEncuentro;
    }

    public List<CFisicaDTO> getListCFisicas() {
        return listCFisicas;
    }

    public void setListCFisicas(List<CFisicaDTO> listCFisicas) {
        this.listCFisicas = listCFisicas;
    }

    public List<EquipamientoSolicitudDTO> getListEquipamiento() {
        return listEquipamiento;
    }

    public void setListEquipamiento(List<EquipamientoSolicitudDTO> listEquipamiento) {
        this.listEquipamiento = listEquipamiento;
    }

    @Override
    public boolean equals(Object obj) {
        boolean igual = false;
        if (obj != null) {
            if (obj instanceof SolicitudDTO) {
                igual = this.getIdSolicitud().equals(((SolicitudDTO) obj).getIdSolicitud());
            }
        }
        return igual;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.idSolicitud != null ? this.idSolicitud.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return idSolicitud.toString();
    }
    
}
